#!/bin/bash

# ========================================================
# 启动 n8n worker 并配置日志轮转
# 使用方法: bash start-n8n-worker.sh
# ========================================================

set -e  # 遇到错误立即退出

echo "🚀 开始启动 n8n-worker 并配置日志管理..."

# 1. 确保在正确的目录下（假设 ecosystem.config.js 在当前目录）
if [ ! -f "ecosystem.config.js" ]; then
    echo "❌ 错误: 当前目录下未找到 ecosystem.config.js 文件！"
    echo "请确保该脚本与 ecosystem.config.js 在同一目录，或修改路径。"
    exit 1
fi

# 2. 安装 pm2-logrotate（如果尚未安装）
echo "🔧 检查并安装 pm2-logrotate 日志轮转插件..."
pm2 install pm2-logrotate > /dev/null 2>&1 || {
    echo "✅ pm2-logrotate 已安装或正在安装..."
}

# 3. 配置 logrotate 策略
echo "⚙️  配置日志轮转策略..."
pm2 conf << EOF
max_size: 100M
retain: 10
compress: true
dateFormat: YYYY-MM-DD_HH-mm-ss
workerInterval: 30
rotateInterval: 0 0 * * *    # 每天凌晨轮转（可选，与 maxSize 互补）
EOF

echo "✅ pm2-logrotate 配置完成:"
echo "   - 单个日志最大 100MB"
echo "   - 最多保留 10 个旧日志"
echo "   - 旧日志自动压缩"
echo "   - 每天凌晨也检查轮转"

# 4. 启动应用
echo "🚀 正在启动 n8n-worker..."
pm2 start ecosystem.config.js

# 5. 保存 PM2 进程列表，确保重启后自动恢复
pm2 save

# 6. 显示当前状态
echo "✅ 启动完成！当前 PM2 进程状态："
pm2 list

# 提示查看日志
echo ""
echo "📄 查看日志: pm2 logs n8n-worker"
echo "📊 监控状态: pm2 monit"
echo "💾 日志路径通常位于 ~/.pm2/logs/，已启用自动轮转和压缩。"
